package com.gph.saviorframework.security.service;

import com.gph.saviorframework.common.model.Menu;
import com.gph.saviorframework.base.service.BaseService;

import java.util.List;
import java.util.Map;

public interface MenuService extends BaseService<Menu,String> {

    /**
     * 根据上级编号和用户名获取菜单
     * @param parentId 上级编号
     * @param username 用户名
     * @return List<Map<String, Object>>
     */
    List<Map<String, Object>> findByParent(String parentId,String username);

    /**
     * 根据上级编号查找记录
     * @param parentId 上级编号
     * @return List<Map<String, String>>
     */
    List<Map<String, Object>> findByParent(String parentId);

    /**
     * 查找记录
     * @param parentId 上级编号
     * @param sort 排序字段
     * @param dir 排序方向
     * @param params 查询参数
     * @return List<Map<String, Object>>
     */
    List<Map<String, Object>> find(String parentId,String sort, String dir, Map<String, Object> params);

    /**
     * 根据上级编号和查询条件查找记录数量
     * @param parentId
     * @param params
     * @return
     */
    long count(String parentId,Map<String, Object> params);

    /**
     * 根据上级编号和角色编号获取菜单列表
     * @param parentId
     * @param roleId
     * @return
     */
    List<Map<String, Object>> findByRole(String parentId,String roleId);
}
